#ifndef ACTION_HPP
#	define ACTION_HPP

#	include "Chess.hpp"

class Action
{
	public:
		typedef enum { MOVE = 0, PAWN_PROMOTION, CASTLING } Type;
		
		Action(Chess::Color color, Action::Type type);
		Action(const Action& action);
		virtual ~Action();
		
		virtual Action::Type 	getType() const;	
		Chess::Color	getColor() const;
		virtual void	execute() = 0;
		virtual void	displayDbg();
		
	protected:
		Chess::Color	color;
		Action::Type 	type;
};

#endif
